什麼是verilog?
Verilog是一種硬體描述語言(Hardware Description Language),簡單來說就是透過寫程式的方式來描述硬體的行為讓EDA tool(Electronic Design Automation)來幫你完成電路設計,過程包含把你的描述的程式轉成gate-level的電路,各個大小module的擺放以及繞線,跟最後的驗證,目前熱門的HDL有Verilog及VHDL兩種,會選verilog當這次的主題是因為verilog相較於VHDL來說,在台灣IC設計公司屬於比較主流的語言,另一個原因是如果有學過C語言的話,或許大多的語法可能不陌生,但很多人卻說,用C的思維去寫verilog會哭出來,沒關係,接下來的每一天會讓你覺得verilog其實很有趣.
為什麼想跟大家分享verilog?
在網路上,關於verilog資源不如其他語言的資源來得多,像是C、Java,Python等等,所以想利用這30天讓想學verilog的同學能對verilog有初步的了解,接下來的三十天會一一介紹verilog的語法,觀念,架構等等,這三十天跟大家分享的比較屬於行為描述的正確性,至於電路合成完的結果,像是timing或resource使用量的部分會提一點,有興趣的同學或許可以在留言板下跟我討論.
大綱:
tool安裝即使用(一至兩天)
語法(四到五天)
testbench(一至兩天)
電路觀念與思維(四到五天)
演算法(兩到三天)
電路應用(四到五天)
timing&resource(兩到三天)
須準備些什麼?
寫verilog時要拋開寫軟體語言的思維,引進邏輯電路的思考來寫,在往後的教學當中,會盡可能搭配電路圖來引導大家如何寫出一個漂亮又有趣的verilog,那接下來先幫大家複習一下幾個邏輯閘及真值表.
輸入 輸出
A B C
0 0 0
0 1 1
1 0 1
1 1 1
OR-gate
輸入 輸出
A B C
0 0 0
0 1 0
1 0 0
1 1 1
AND-gate
輸入 輸出
A B
0 1
1 1
Inveter-gate
輸入 輸出
A B C
0 0 0
0 1 1
1 0 1
1 1 0
XOR-gate
其實在複雜的電路也是用這些邏輯閘組合出來的,所以知道這些基本邏輯閘的輸入輸出關係之後,我們就可以往下進行囉,未來三十天我會盡量把我知道的分享給大家,如果有筆誤的地方也請大家多多包容.